package com.fs.leetcode.array;

/**
 * @author shuai.fang
 * @date：2018-01-25
 * @description：在一个数组里面移除指定value，并且返回新的数组长度。这题唯一需要注意的地方在于in place，不能新建另一个数组。
 */
public class RemoveElement {

	public static void main(String[] args) {
		removeElement(new String[]{"1", "2", "3", "1", "1", "3", "4"}, "1");
	}

	public static void removeElement(String[] strArr, String strValue) {
		if (strArr == null || strArr.length == 0) {
			throw new IllegalArgumentException("数组不能为空");
		}
		if (strValue == null) {
			throw new IllegalArgumentException("需要移除的数据不能为空");
		}
		int j = 0;
		for (int i = 0; i < strArr.length; i++) {
			if (strArr[i].equals(strValue)) {
				continue;
			}
			strArr[j] = strArr[i];
			System.out.println("j = " + j + ", i = " + i);
			j++;
		}

		System.out.println("被移除后的数组长度为 -> " + j);
	}

}
